Services Staff
services-staff (VMID 119, 10.0.0.19) hosts staff/internal tooling split off the legacy monolithic services VM, plus the team's self-hosted Gitea and Rocket.Chat.
Configured by ansible/hetzner-main/setup-services-staff.yml; each app's Docker Compose definition lives under ansible/hetzner-main/services-staff-apps/<app>/ in the automation repo.
This VM was bumped from 2 cores / 2 GB to 4 cores / 4 GB in Terraform after it started wedging under memory pressure once irishfst was added. Since there's no hotplug, the resize itself was done cold on the Proxmox host (qm shutdown && qm set --cores 4 --memory 4096 && qm start) — see the resize note on the Webserver page for why that has to happen on the host, not via terraform apply.
Applications
| App | Notes |
|---|---|
backoffice | |
backoffice-services | |
translations-editor | |
cul | |
irishfst | Irish part-of-speech tagger API; the FST model is baked into the image |
| Gitea | gitea.abair.ie — self-hosted Git, own tag (gitea), backed by its own Postgres container; registration disabled, HTTPS-only (no SSH clone) |
| Rocket.Chat | alerts.abair.ie — staff chat, own tag (rocketchat), backed by its own single-node MongoDB replica set |
Deploying apps
The stateless apps (backoffice, backoffice-services, translations-editor, cul, irishfst) deploy under the apps tag — make deploy-services-staff-apps syncs and redeploys all of them together.
Gitea and Rocket.Chat are stateful and deploy independently under their own tags, since redeploying them touches a live database:
make deploy-gitea
make deploy-rocketchat
Firewall
Only the webserver VM may reach this host's ports.